package com.evildog.workspace.log.application.convert;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.evildog.workspace.common.result.PagedResult;
import com.evildog.workspace.log.application.bo.AccessLogBO;
import com.evildog.workspace.log.application.bo.AccessLogPageBO;
import com.evildog.workspace.log.application.dto.AccessLogDTO;
import com.evildog.workspace.log.application.dto.AccessLogPageDTO;
import com.evildog.workspace.log.application.entity.AccessLog;
import com.evildog.workspace.log.application.entity.AccessLogPageDO;
import com.evildog.workspace.log.application.model.AccessLogPageParam;
import com.evildog.workspace.log.application.vo.AccessLogPageVO;
import com.evildog.workspace.log.application.vo.AccessLogVO;
import com.evildog.workspace.log.api.model.AccessLogParam;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

@Mapper
public interface AccessLogConvert {

    AccessLogConvert INSTANCE = Mappers.getMapper(AccessLogConvert.class);

    AccessLogPageDTO convert(AccessLogPageParam accessLogPageParam);

    AccessLogDTO convert(AccessLogParam accessLogParam);

    AccessLog convert(AccessLogDTO accessLogDTO);

    AccessLogPageDO convert(AccessLogPageDTO accessLogPageDTO);

    AccessLogVO convert(AccessLogBO accessLogBO);

    AccessLogBO convert(AccessLog accessLog);

    @Mappings({})
    PagedResult<AccessLogPageBO> convert(IPage<AccessLogPageDO> page);

    PagedResult<AccessLogPageVO> convert(PagedResult<AccessLogPageBO> page);
}